// ========== INSTRUCTIONS DE TRACE SUR STDERR, FORMATTEES,  ====================
//
// Exemple    Appel     : trace2("CompName",$2)
//            Resultat  : <CompName:ball.x>
// ----------------------------------------------------------------------------
void trace1( char *s );
void trace2( char *s1, char *s2 );
void trace3( char *s1, char *s2, char *s3 );
void trace4( char *s1, char *s2, char *s3, char *s4 );

// ========== POUR PREPARER LA VALEUR $$ D'UNE TETE DE REGLE ==================

  // --------------------------------------------------------------------------
  // POUR COPIER DANS $$ LA VALEUR DU n-ime TERME DE QUEUE $n
  //
  // Exemple d'utilisationdans une regle :
  //
  //             Operand:   Arg 
  //                          { $$ = copy($1); } 
  //                      ;
  // --------------------------------------------------------------------------

char * copy( char * s );

  // --------------------------------------------------------------------------
  // POUR COPIER DANS $$ UNE CONCATENATION DE TERMES $nn, OU AUTRES CHAINES
  //
  // Exemple d'utilisation      $$ = c3( "private var ", $3, ":Number" );
  //                            trace2("VarDef",$$);
  // Exemple de resultat        <private var vx:Number>
  // --------------------------------------------------------------------------

char * c2( char *s1, char *s2 );
char * c3( char *s1, char *s2, char *s3 );
char * c4(  char *s1, char *s2, char *s3, char *s4 );
char * c5(  char *s1, char *s2, char *s3, char *s4, char *s5 );
char * c6(  char *s1, char *s2, char *s3, char *s4, char *s5, char *s6 );
char * c7(  char *s1, char *s2, char *s3, char *s4, char *s5, char *s6, char *s7 );
